A. Multiprocessor Computer
Typically, a multiprocessor data processing system has a number of devices, including multiple (i.e., two or more) processors, interconnected by a system bus for communication. The devices on the system bus can also include a number of memory modules, and one or more input/output (I/O) units, such as disk, tape or I/O bridge controllers. Each memory module includes at least one independently accessible memory bank. Depending on system configuration, a number of the I/O units can be connected directly to the system bus, and the rest can be connected to one or more I/O buses, which connect to the system bus via an I/O interface or adapter.
Essentially, the memory banks serve as shared resources for the processors and I/O units, and therefore can be called "resource nodes" on the system bus. The processors and I/O units can be called "commander nodes." The commander nodes initiate requests to gain control of the system bus to access the memory banks. Essentially, the system bus can be viewed as a shared resource used by the commander nodes to access the resource nodes. Upon gaining control of the system bus, the commander nodes transmit commands (e.g., read or write) over the system bus, to which the resource nodes respond.
In a known data processing system, the commander nodes transmit the requests and commands in synchronization with system bus cycles. The bus cycles specify periodically occurring times for transmitting requests, for transmitting commands and for transmitting data over the system bus. During the system bus cycles, the times when requests can be transmitted are called "request cycles." Each commander node desiring bus access transmits a request during one of the request cycles, typically during the next-occurring request cycle.